package persistence;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import model.TipoInstituicao;

public class TipoInstituicaoDaoImpl implements TipoInstituicaoDao {
	Connection c;

	public TipoInstituicaoDaoImpl() {
		GenericDao gDao = new GenericDao();
		c = gDao.getConnection();
	}

	@Override
	public void salvaTipoInstituicao(TipoInstituicao tipoInstituicao)
			throws SQLException {
		String sql = "INSERT INTO tiposDeInstituicoes VALUES (?,?)";
		PreparedStatement ps = c.prepareStatement(sql);

		ps.setInt(1, tipoInstituicao.getIdTipo());
		ps.setString(2, tipoInstituicao.getTipo());

		ps.execute();
		ps.close();

	}

	@Override
	public void editaTipoInstituicao(TipoInstituicao tipoInstituicao)
			throws SQLException {
		String sql = "UPDATE tiposDeInstituicoes SET tipo = ? WHERE idTipo = ?";
		PreparedStatement ps = c.prepareStatement(sql);
		ps.setString(1, tipoInstituicao.getTipo());
		ps.setInt(2, tipoInstituicao.getIdTipo());
		ps.execute();
		ps.close();

	}

	@Override
	public void excluiTipoInstituicao(TipoInstituicao tipoInstituicao)
			throws SQLException {
		String sql = "DELETE tiposDeInstituicoes WHERE idTipo = ?";
		PreparedStatement ps = c.prepareStatement(sql);
		ps.setInt(1, tipoInstituicao.getIdTipo());
		ps.execute();
		ps.close();

	}

	@Override
	public TipoInstituicao pesquisaTipoInstituicao(
			TipoInstituicao tipoInstituicao) throws SQLException {
		TipoInstituicao ti = new TipoInstituicao();
		String sql = "SELECT idTipo, tipo FROM tiposDeInstituicoes WHERE idTipo = ?";
		PreparedStatement ps = c.prepareStatement(sql);
		ps.setInt(1, tipoInstituicao.getIdTipo());
		ResultSet rs = ps.executeQuery();
		if (rs.next()) {
			ti.setIdTipo(rs.getInt("idTipo"));
			ti.setTipo(rs.getString("tipo"));

		}
		ps.close();
		rs.close();
		return ti;
	}

}
